
# 列表
"""
说明 ：
    1 . 是一个有序序列 ，需要通过下标或索引来获取 。
    2 . 可以存放任意数据类型 ，没有长度的限制 。
    3. 列表里的元素可以进行增删改查 ,
    4. 对容器中的元素进行增删改的操作 ，都叫可变化对象 。


定义：
    变量名 = ['a','b',1,None,Ture,[]]

操作 ：
    1）：查询 ：
        （1） 查询列表中的某一个数 ： lst[索引]
        （2） 遍历序列中的每一个数 ，使用到for循环
    2）：增加
    3）：修改 :
        lst[索引] = 新值
    4）：删除
"""

# 1. 列表的定义
alst = []   # 空列表
blst = [1,23,'abc',None]
print(alst)
print(blst)

# 2. 查询
print("通过索引获取列表中的第3个数:",blst[2])
# print("通过索引获取列表的元素:",blst[5])     # 若下标超出了列表中的元素，则会报IndexError

# 使用循环读取
for x in blst:
    print(x)


# 3. 列表的修改
blst[1] = 98        # 列表的重新赋值
print(blst)


# 4. 列表的方法
"""
list.index(obj)         : 从列表中找出某个元素的位置
list.count(obj)         : 从列表中查找出某个元素出现的次数          
list.insert(index,obj)  : 往列表中某个位置插入一个元素            **
list.append(obj)        : 向列表中插入一个元素                **
list.extend(seq)        : 向该俩表中插入另外一个序列中的数          **
list.pop(index)              : 删除对应索引的元素，若不传，就删除最后一个        **
list.clear()            : 删除所有元素
list.reverse()          : 列表翻转                          **
list.sort()             ：列表排序                           **
list.copy()             : 列表的拷贝
"""
print("============")
clst = ['hello','java','hello','python','hello','go']
print("查询中python所在的位置:",clst.index('python'))
print("查询中hello所在的位置:",clst.index('hello'))
print("查询中hello出现的次数:",clst.count('hello'))
print("向列表的第3个位置插入元素php:",clst.insert(2,'php'))
print(clst)
print("向列表插入元素c++:",clst.append('c++'))
print(clst)
dlst = ['xyz','abc']
dlst.extend(clst)
print(dlst)
dlst.pop()
print(dlst)
dlst.pop(2)
print(dlst)

dlst.reverse()
print(dlst)

dlst.sort()
print(dlst)

elst = dlst.copy()
print("elist:",elst)